home *** CD-ROM | disk | FTP | other *** search
/ The Games Machine 103 / XENIATGM103.iso / Shareware / GoLive 5.0 / MM27.Cab / F857_JSASample.c.0162E57D_7C98_4D94_A1CA_6231808F03E6 < prev    next >
Text File  |  2000-08-17  |  2KB  |  89 lines

  1. /*************************************************************************
  2. *
  3. * ADOBE CONFIDENTIAL
  4. * ___________________
  5. *
  6. *  Copyright 2000 Adobe Systems Incorporated
  7. *  All Rights Reserved.
  8. *
  9. * NOTICE:  All information contained herein is, and remains the property of 
  10. * Adobe Systems Incorporated  and its suppliers, if any.  The  intellectual 
  11. * and technical concepts contained herein are proprietary to  Adobe Systems 
  12. * Incorporated a nd its suppliers  and may be covered by U. S. and  Foreign 
  13. * Patents,patents in process,and are protected by trade secret or copyright 
  14. * law.  Dissemination of this information or reproduction  of this material
  15. * is strictly forbidden  unless prior  written permission  is obtained from 
  16. * Adobe Systems Incorporated.
  17. *
  18. **************************************************************************/
  19.  
  20. // ----------------------------------------------------------------
  21. // JSASample.c
  22. // Sample for the GoLive Extend Script SDK
  23. // ----------------------------------------------------------------
  24.  
  25. #include "JSA.h"
  26.  
  27. #include <math.h>
  28.  
  29. #ifdef WIN32
  30. #include <windows.h>
  31. #else
  32. #include <QuickDraw.h>
  33. #endif
  34.  
  35. // Implement this macro once to set up the necessary structures.
  36.  
  37. JSA_INIT
  38.  
  39. // Return the power of arg1 to arg2.
  40.  
  41. static void power(int argc, JSValue *argv, JSValue returnValue)
  42. {
  43.     double a, b, c;
  44.     a = JSAValueToDouble(argv[0]);
  45.     b = JSAValueToDouble(argv[1]);
  46.     
  47.     c = pow (a, b);
  48.     
  49.     JSADoubleToValue(returnValue, c);
  50. }
  51.  
  52. // Draw an oval into the given rectangle. This demonstrates the
  53. // use of the JSADrawInfo structure.
  54.  
  55. static void drawOval(int argc, JSValue *argv, JSValue returnValue)
  56. {
  57.     long temp;
  58.     JSADrawInfo* info;
  59. #ifdef WIN32
  60.     HDC dc;
  61.     temp = JSAValueToInt (argv[0]);
  62.     info = (JSADrawInfo*) temp;
  63.     dc = (HDC) info->context;
  64.     Ellipse (dc, info->left, info->top, info->right, info->bottom);
  65. #else
  66.     Rect r;
  67.     temp = JSAValueToInt (argv[0]);
  68.     info = (JSADrawInfo*) temp;
  69.     r.left = (short) info->left;
  70.     r.top = (short) info->top;
  71.     r.right = (short) info->right;
  72.     r.bottom = (short) info->bottom;
  73.     FrameOval (&r);
  74. #endif
  75. }
  76.  
  77. // Implement the JSAMain function to register all callable functions.
  78.  
  79. void JSAEXPORT JSAMain(void)
  80. {
  81.     JSARegisterFunction("power",power);
  82.     JSARegisterFunction("drawOval",drawOval);
  83. }
  84.  
  85. // optional, may be omitted
  86.  
  87. void JSAEXPORT JSAExit(void)
  88. {}
  89.